A computer processor normally uses a variety of storage for data (e.g., code, or data operated on by code). For example, in addition to on-chip cache memory (e.g., L1, L2 caches), a modern day computer processor also needs to access the main memory of its host computer system for computing needs. Loading data from outside of the computer processor (such as the main memory), however, bears a lot of security risks because the data may be tampered with, or even worse, may be malicious. Thus, for security purposes, sometimes it is desirable for certain data (e.g., security related logic, BIOS) to be tamper protected, read protected, or both.
One existing solution stores the data to be protected on the computer processor chip. This solution, however, is limited by the non-volatile storage space available on the computer chip. Moreover, increasing non-volatile storage space to accommodate more data is generally not practical. Therefore, there is a need in the art for certain data to be securely stored in a storage external to a computer processor chip.